There are many situations in which it may be useful to perform an action of a file. For example, compressing a data file can reduce the size of a file, making it easier or less costly to transfer the file from one location to another. In general, there are a variety of actions that can be performed on a file. For a given file, some of these actions will be useful, and others will not. For example, one type of compression will reduce the size of a particular file, but another type of compression may not appreciably reduce the size of that file.
One problem that arises with some of the actions is that it may not be possible to determine whether those actions will be useful without actually performing the actions. For example, a user may not be able to efficiently determine whether compressing a file will be useful without actually attempting to compress the file (e.g., while analysis of the file may reveal whether compression is likely to be useful, this analysis may take much longer than simply compressing the file). It is therefore often more clear whether a given action is useful for a given file after the action has been performed on the file. For example, after a file is compressed, the file's size before compression can be compared to the file's size after compression to determine whether the compression was useful. In situations such as these, it is desirable to be able to more easily determine whether performing a process on a file will be useful.